package com.yzf.demo.demo.DesignPattren.SingletonPattern.lazysingleton;

/**
 * Created by 于占峰 on 2020/2/27/027.
 * 懒汉模式
 */
public class LazySingleton {

    private static LazySingleton lazySingleton = null;

    private LazySingleton() {
    }

    //双重校验锁
    public static synchronized LazySingleton getInstans() {
        //第一次验证单例对象如果没有初始化则进入
        if (null == lazySingleton) {
            //验证是否被其他线程使用
            synchronized (LazySingleton.class) {
                //再次验证是否为初始化
                if (null == lazySingleton) {
                    lazySingleton = new LazySingleton();
                }
            }
        }
        return lazySingleton;
    }
}
